package edu.unf.cen6940.service;

import edu.unf.cen6940.domain.Faculty;
import edu.unf.cen6940.domain.Thesis;
import edu.unf.cen6940.domain.Thesiscommittee;

import java.util.List;
import java.util.Set;

/**
 * Spring service that handles CRUD requests for Thesiscommittee entities
 * 
 */
public interface ThesiscommitteeService {

	/**
	 * Return all Thesiscommittee entity
	 * 
	 */
	public List<Thesiscommittee> findAllThesiscommittees(Integer startResult, Integer maxRows);

	/**
	 * Save an existing Thesiscommittee entity
	 * 
	 */
	public void saveThesiscommittee(Thesiscommittee thesiscommittee);

	/**
	 */
	public Thesiscommittee findThesiscommitteeByPrimaryKey(Integer thesisCommitteeId);

	/**
	 * Save an existing Faculty entity
	 * 
	 */
	public Thesiscommittee saveThesiscommitteeFacultyByChair(Integer thesisCommitteeId_1, Faculty related_facultybychair);

	/**
	 * Load an existing Thesiscommittee entity
	 * 
	 */
	public Set<Thesiscommittee> loadThesiscommittees();

	/**
	 * Delete an existing Faculty entity
	 * 
	 */
	public Thesiscommittee deleteThesiscommitteeFacultyByChair(Integer thesiscommittee_thesisCommitteeId, Integer related_facultybychair_facultyId);

	/**
	 * Save an existing Faculty entity
	 * 
	 */
	public Thesiscommittee saveThesiscommitteeFacultyByCommitteeMember1(Integer thesisCommitteeId_2, Faculty related_facultybycommitteemember1);

	/**
	 * Save an existing Faculty entity
	 * 
	 */
	public Thesiscommittee saveThesiscommitteeFacultyByCommitteeMember3(Integer thesisCommitteeId_3, Faculty related_facultybycommitteemember3);

	/**
	 * Delete an existing Faculty entity
	 * 
	 */
	public Thesiscommittee deleteThesiscommitteeFacultyByCommitteeMember4(Integer thesiscommittee_thesisCommitteeId_1, Integer related_facultybycommitteemember4_facultyId);

	/**
	 * Delete an existing Thesiscommittee entity
	 * 
	 */
	public void deleteThesiscommittee(Thesiscommittee thesiscommittee_1);

	/**
	 * Delete an existing Faculty entity
	 * 
	 */
	public Thesiscommittee deleteThesiscommitteeFacultyByCommitteeMember1(Integer thesiscommittee_thesisCommitteeId_2, Integer related_facultybycommitteemember1_facultyId);

	/**
	 * Delete an existing Thesis entity
	 * 
	 */
	public Thesiscommittee deleteThesiscommitteeThesises(Integer thesiscommittee_thesisCommitteeId_3, Integer related_thesises_thesisId);

	/**
	 * Delete an existing Faculty entity
	 * 
	 */
	public Thesiscommittee deleteThesiscommitteeFacultyByCommitteeMember3(Integer thesiscommittee_thesisCommitteeId_4, Integer related_facultybycommitteemember3_facultyId);

	/**
	 * Delete an existing Faculty entity
	 * 
	 */
	public Thesiscommittee deleteThesiscommitteeFacultyByCommitteeMember5(Integer thesiscommittee_thesisCommitteeId_5, Integer related_facultybycommitteemember5_facultyId);

	/**
	 * Save an existing Faculty entity
	 * 
	 */
	public Thesiscommittee saveThesiscommitteeFacultyByCommitteeMember2(Integer thesisCommitteeId_4, Faculty related_facultybycommitteemember2);

	/**
	 * Save an existing Faculty entity
	 * 
	 */
	public Thesiscommittee saveThesiscommitteeFacultyByCommitteeMember5(Integer thesisCommitteeId_5, Faculty related_facultybycommitteemember5);

	/**
	 * Save an existing Thesis entity
	 * 
	 */
	public Thesiscommittee saveThesiscommitteeThesises(Integer thesisCommitteeId_6, Thesis related_thesises);

	/**
	 * Return a count of all Thesiscommittee entity
	 * 
	 */
	public Integer countThesiscommittees();

	/**
	 * Delete an existing Faculty entity
	 * 
	 */
	public Thesiscommittee deleteThesiscommitteeFacultyByCommitteeMember2(Integer thesiscommittee_thesisCommitteeId_6, Integer related_facultybycommitteemember2_facultyId);

	/**
	 * Save an existing Faculty entity
	 * 
	 */
	public Thesiscommittee saveThesiscommitteeFacultyByCommitteeMember4(Integer thesisCommitteeId_7, Faculty related_facultybycommitteemember4);
}